import Vue from 'vue' // 导入了vue

import 'normalize.css/normalize.css' // 样式初始化
import ElementUI from 'element-ui' // element-ui组件库
import 'element-ui/lib/theme-chalk/index.css' // element-ui样式文件
import locale from 'element-ui/lib/locale/lang/en' // element-ui的英文包

import '@/styles/index.scss' // 全局的样式文件

import App from './App' // 根组件
import store from './store' // vuex仓库
import router from './router' // 路由

import '@/icons' // 图标
import '@/permission' // 权限控制 导航守卫
// import '@/directives' 直接导入并执行指令
// 2 按需注册指令
/* import { red, imgerror } from '@/directives' // 导入指令模块
Vue.directive('red', red)
Vue.directive('imgerror', imgerror) */
import * as allDriectives from '@/directives'
import MyComponent from '@/components/index.js'
import * as AllFilters from '@/filters'
// import '@/styles/element-variables.scss'
import Print from 'vue-print-nb'
import '@/styles/my.scss'
import i18n from '@/Lang'

Vue.use(Print)
console.log(AllFilters)
Vue.use(MyComponent)

// import PageTools from '@/components/PageTools'
// Vue.component('PageTools', PageTools)
// console.log(allDriectives) // 是一个对象包含了所有的指令
// ------- 批量注册forin方式循环遍历 对象 批量注册所有指令
/* for (const k in allDriectives) {
  // console.log(k) // 键
  // console.log(allDriectives[k]) // 值
  Vue.directive(k, allDriectives[k])
} */

// -----批量注册
// Object.keys(allDriectives) // 对象的键收集到的数组
Object.keys(allDriectives).forEach(k => {
  // console.log(k) //
  Vue.directive(k, allDriectives[k])
})

// 批量注册过滤器
Object.keys(AllFilters).forEach(k => {
  // console.log(k) //
  Vue.filter(k, AllFilters[k])
})

// 设置英文版本的element-ui
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)
Vue.config.productionTip = false
// 将main.js中 之前写的 Vue.use(elementui) 注释掉
// 配置ElementUI的中英切换逻辑
Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value)
})
// 创建vue实例挂载配置项并渲染到#app的位置
new Vue({
  router,
  store,
  i18n,
  render: h => h(App)
}).$mount('#app')
